# 代码编写者： 李朔
# 开发时间： 2021/7/27 10:49

nums=[5,7,1,8]

def checkPossibility(nums):
    '''
    非递减数列检查
    :param nums:待检查数列
    :return: 布尔值
    '''
    nums_len=len(nums)
    i,k=1,1
    while i<nums_len-1:
        #检查到倒数第二个数即可
        #分两种情况讨论
        if i==1:
            if nums[i-1]>nums[i]:
                nums[i-1]=nums[i]
        else:
            if nums[i]<nums[i-2] and nums[i-1]>nums[i]:
                nums[i]=nums[i-1]
            elif nums[i]>=nums[i-2] and nums[i-1]>nums[i]:
                nums[i-1]=nums[i-2]
        i+=1
        print(nums)
    return True


print(checkPossibility(nums))




